/*************************************************************************
	> File Name: Strategy.h
	> Author: Joker
	> Mail: mahongtao@foxmail.com 
	> Created Time: 2020-09-22 14:46:05
 ************************************************************************/

#ifndef __STRATEGY_H__
#define __STRATEGY_H__

class Strategy;

class Context
{
public:
    Context(Strategy * pStrategy);
    ~Context();

    void ContextInterface();

private:
    Strategy * _pStrategy;
};

class Strategy
{
public:
    virtual ~Strategy(){}

    virtual void AlgorithmInterface() = 0;
};

class ConcreateStrategyA
:public Strategy
{
public:
    virtual ~ConcreateStrategyA(){}

    virtual void AlgorithmInterface();
};

#endif
